package com.ruiyian.system.domain;

import com.fasterxml.jackson.annotation.JsonIgnore;
import com.ruiyian.common.annotation.Excel;
import com.ruiyian.common.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.ArrayList;

/**
 * 路线路段对象 gsd_map_info
 *
 * @author ruoyi
 * @date 2024-04-17
 */
public class GsdMapInfo extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键id */
    private Long roadId;

    /** 国高网编号 */
    private String roadNo;

    /** 路线名称 */
    private String roadName;

    /** 路线简称 */
    private String roadSimpleName;

    /** 上级路线、路段id */
    private Long parentId;

    /** 路线等级 1=一级公路 2=二级公路 3=三级公路 4=高速公路 */
    private Long roadGrade;

    /** 路面类型 1=沥青路面 2=水泥路面 */
    private Long roadType;

    /** 路面宽度 */
    private Long roadWidth;

    /** 排序号 */
    private Long sortNo;

    /** 起点桩号(如：K0+100) */
    private String startStake;

    /** 代表起点桩号的数字(如：0.100表示k0+100) */
    private BigDecimal startStakeNum;

    /** 终点桩号(如：K28+137) */
    private String endStake;

    /** 代表终点桩号的数字(如：28.137表示k28+137) */
    private BigDecimal endStakeNum;

    /** 总里程（KM） */
    private BigDecimal totalMileage;

    /** 车道数量 */
    private Long laneCnt;

    /** 管理部门id */
    private Long deptId;

    /** 方向  1=上行、2=下行 */
    private Long direction;

    /** 逻辑删除标识  Y=删除 N=未删除 */
    private String delFlag;

    @JsonIgnore
    private String lngLat;

    //前端需要显示的数据格式[[],[]]
    private ArrayList<Double[]> lngLatVO;

    //终点经纬度
    private Double[] endPoint;

    /** 经纬度文件对应的文件在biz_file表中的id */
    private Long lngLatFileId;

    public void setRoadId(Long roadId)
    {
        this.roadId = roadId;
    }

    public Long getRoadId()
    {
        return roadId;
    }
    public void setRoadNo(String roadNo)
    {
        this.roadNo = roadNo;
    }

    public String getRoadNo()
    {
        return roadNo;
    }
    public void setRoadName(String roadName)
    {
        this.roadName = roadName;
    }

    public String getRoadName()
    {
        return roadName;
    }
    public void setRoadSimpleName(String roadSimpleName)
    {
        this.roadSimpleName = roadSimpleName;
    }

    public String getRoadSimpleName()
    {
        return roadSimpleName;
    }
    public void setParentId(Long parentId)
    {
        this.parentId = parentId;
    }

    public Long getParentId()
    {
        return parentId;
    }
    public void setRoadGrade(Long roadGrade)
    {
        this.roadGrade = roadGrade;
    }

    public Long getRoadGrade()
    {
        return roadGrade;
    }
    public void setRoadType(Long roadType)
    {
        this.roadType = roadType;
    }

    public Long getRoadType()
    {
        return roadType;
    }
    public void setRoadWidth(Long roadWidth)
    {
        this.roadWidth = roadWidth;
    }

    public Long getRoadWidth()
    {
        return roadWidth;
    }
    public void setSortNo(Long sortNo)
    {
        this.sortNo = sortNo;
    }

    public Long getSortNo()
    {
        return sortNo;
    }
    public void setStartStake(String startStake)
    {
        this.startStake = startStake;
    }

    public String getStartStake()
    {
        return startStake;
    }
    public void setStartStakeNum(BigDecimal startStakeNum)
    {
        this.startStakeNum = startStakeNum;
    }

    public BigDecimal getStartStakeNum()
    {
        return startStakeNum;
    }
    public void setEndStake(String endStake)
    {
        this.endStake = endStake;
    }

    public String getEndStake()
    {
        return endStake;
    }
    public void setEndStakeNum(BigDecimal endStakeNum)
    {
        this.endStakeNum = endStakeNum;
    }

    public BigDecimal getEndStakeNum()
    {
        return endStakeNum;
    }
    public void setTotalMileage(BigDecimal totalMileage)
    {
        this.totalMileage = totalMileage;
    }

    public BigDecimal getTotalMileage()
    {
        return totalMileage;
    }
    public void setLaneCnt(Long laneCnt)
    {
        this.laneCnt = laneCnt;
    }

    public Long getLaneCnt()
    {
        return laneCnt;
    }
    public void setDeptId(Long deptId)
    {
        this.deptId = deptId;
    }

    public Long getDeptId()
    {
        return deptId;
    }
    public void setDirection(Long direction)
    {
        this.direction = direction;
    }

    public Long getDirection()
    {
        return direction;
    }
    public void setDelFlag(String delFlag)
    {
        this.delFlag = delFlag;
    }

    public String getDelFlag()
    {
        return delFlag;
    }
    public void setLngLat(String lngLat)
    {
        this.lngLat = lngLat;
    }

    public String getLngLat()
    {
        return lngLat;
    }
    public void setLngLatFileId(Long lngLatFileId)
    {
        this.lngLatFileId = lngLatFileId;
    }

    public Long getLngLatFileId()
    {
        return lngLatFileId;
    }

    public void setLngLatVO(ArrayList<Double[]> lngLatVO)
    {
        this.lngLatVO = lngLatVO;
    }
    public ArrayList<Double[]> getLngLatVO() { return lngLatVO; }

    public void setEndPoint(Double[] endPoint)
    {
        this.endPoint = endPoint;
    }
    public Double[] getEndPoint()
    {
        return endPoint;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("roadId", getRoadId())
                .append("roadNo", getRoadNo())
                .append("roadName", getRoadName())
                .append("roadSimpleName", getRoadSimpleName())
                .append("parentId", getParentId())
                .append("roadGrade", getRoadGrade())
                .append("roadType", getRoadType())
                .append("roadWidth", getRoadWidth())
                .append("sortNo", getSortNo())
                .append("startStake", getStartStake())
                .append("startStakeNum", getStartStakeNum())
                .append("endStake", getEndStake())
                .append("endStakeNum", getEndStakeNum())
                .append("totalMileage", getTotalMileage())
                .append("laneCnt", getLaneCnt())
                .append("deptId", getDeptId())
                .append("direction", getDirection())
                .append("remark", getRemark())
                .append("delFlag", getDelFlag())
                .append("createBy", getCreateBy())
                .append("createTime", getCreateTime())
                .append("updateBy", getUpdateBy())
                .append("updateTime", getUpdateTime())
                .append("lngLat", getLngLat())
                .append("lngLatFileId", getLngLatFileId())
                .toString();
    }
}
